package com.rabbiter.fm.service.impl;

import com.rabbiter.fm.dao.LifeShowDao;
import com.rabbiter.fm.model.LifeShowModel;
import com.rabbiter.fm.service.LifeShowService;
import com.rabbiter.fm.vo.PageVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class LifeShowServiceImpl implements LifeShowService {

    @Resource
    private LifeShowDao lifeShowDao;

    /**
     * 发布生活秀
     *
     * @param lifeShow 生活秀实体对象
     * @return 是否发布成功
     */
    @Override
    public boolean addLifeShow(LifeShowModel lifeShow) {
        return lifeShowDao.insert(lifeShow) == 1;
    }

    /**
     * 分页搜索生活秀
     *
     * @param title 标题（支持模糊查询）
     * @param page  当前页码
     * @param nums  每页显示的记录数
     * @return 分页结果
     */
    @Override
    public PageVo<LifeShowModel> findLifeShowItem(String title, int page, int nums, Integer agree) {
        // 计算分页起始位置
        int begin = (page - 1) * nums;
        // 查询数据列表
        List<LifeShowModel> list = lifeShowDao.findLifeShowItem(title, begin, nums);

        if (agree==1){
            for (int i = 0; i <list.size() ; i++) {
                if (list.get(i).getAgree()==0){
                    list.remove(i);
                }
            }
        }
        // 统计总记录数
        int count = lifeShowDao.countLifeShowItem(title);
        // 返回分页结果
        return new PageVo<>(list, count);
    }






    /**
     * 获取某个生活秀详情
     *
     * @param id 生活秀ID
     * @return 生活秀实体对象
     */
    @Override
    public LifeShowModel getLifeShowItem(Long id) {
        return lifeShowDao.selectByPrimaryKey(id);
    }

    /**
     * 删除生活秀
     *
     * @param id 生活秀ID
     * @return 是否删除成功
     */
    @Override
    public boolean deleteLifeShow(Long id) {
        try {
            return lifeShowDao.deleteByPrimaryKey(id) == 1;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 更新生活秀信息
     *
     * @param lifeShow 生活秀实体对象
     * @return 是否更新成功
     */
    @Override
    public boolean updateLifeShow(LifeShowModel lifeShow) {
        try {
            return lifeShowDao.updateByPrimaryKey(lifeShow) == 1;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    @Override
    public boolean updateAgreeById(Long id, Integer agree) {
        try {
            int rowsAffected = lifeShowDao.updateAgreeById(id, agree);
            return rowsAffected > 0; // 如果影响行数大于0，则更新成功
        } catch (Exception e) {
            e.printStackTrace();
            return false; // 出现异常时返回失败
        }
    }

}